In a 3-quart heavy-bottom saucepan, heat oil over medium. Add ham, and cook, stirring occasionally,
until starting to brown, about 3 minutes. Add garlic; cook, stirring often, until fragrant, about 1 minute. Stir in flour; cook 1 minute.
Stir in milk, and season with salt and pepper. Cook, stirring often, until mixture is slightly thickened,
4 to 5 minutes. Stir in cream cheese; cook until melted, about 1 minute.
Meanwhile, in a large pot of boiling salted water, cook pasta until al dente according to package instructions, adding broccoli during final 3 minutes. Drain; transfer pasta and broccoli to a large bowl. Add cream-cheese sauce and Parmesan, and toss to combine. Serve immediately.