Preheat and prep. Heat the oven to 375°F (190°C).
Lightly grease a 9x13-inch baking dish or similar casserole.
Cook the pasta. Boil the whole-grain macaroni in well-salted water until just shy of al dente (about 1 minute less than package time). Drain and set aside.
Steam the cauliflower. While the pasta cooks, steam cauliflower until very tender (8–10 minutes). If using frozen, microwave until soft.
Drain any excess water.
Blend for creaminess. In a blender, combine the steamed cauliflower, broth, and Greek yogurt. Blend until smooth and silky. Set aside.
Make a light roux. In a large pot over medium heat, warm the olive oil.
Whisk in the whole-wheat flour and cook 1–2 minutes until lightly nutty, stirring constantly.
Build the sauce. Slowly whisk in the milk, then the cauliflower-yogurt puree. Bring to a gentle simmer and cook 2–3 minutes until slightly thickened.
Add flavor and cheese. Stir in Dijon, garlic powder, onion powder, smoked paprika, and a good pinch of salt and pepper. Reduce heat to low.
Add the cheddar and Parmesan in small handfuls, stirring until melted and smooth. Taste and adjust seasoning.
Combine with pasta. Fold the cooked pasta into the sauce. It should be creamy but not soupy; the oven will tighten it up.
Top and bake. Pour the mixture into the baking dish.
Sprinkle with whole-wheat panko. Lightly mist with cooking spray for extra crunch.
Bake. Bake 18–22 minutes until bubbly around the edges and lightly golden on top. For a deeper crust, broil 1–2 minutes at the end, watching closely.
Finish and serve. Let rest 5 minutes.
Sprinkle with chopped parsley and serve warm.