In an 8- to 10-quart covered pan over high heat, bring about 4 quarts water to a boil. Add spaghetti and cook until barely tender to bite, 8 to 10 minutes.
Meanwhile, in a 12-inch nonstick frying pan or 5- to 6-quart nonstick pan over high heat, stir onion, mushrooms, celery, and ham in olive oil until onion begins to brown, 10 to 15 minutes. Add broth, wine, and tomato paste; stir until well blended.
Discard any solidified fat from pot roast and sauce. Scrape sauce from meat into onion-tomato mixture. Cut beef across the grain into 1/4-inch-thick slices and lay over onion-tomato sauce; cover and simmer over low heat until beef is hot, 7 to 10 minutes. Add salt and pepper to taste.
Drain spaghetti well and pour onto a rimmed platter or into a wide, shallow bowl. With a slotted spatula, arrange beef slices over pasta. Spoon sauce over meat and pasta. Sprinkle with parsley.