-
Bring a large pot of salted water to a boil. Cook elbow macaroni one minute short of package directions. Drain and set aside — do not rinse (the starch helps the sauce cling).
-
In the same pot, melt butter over medium heat. Once foamy, add flour and whisk constantly for 2 minutes until smooth and slightly nutty-smelling.
-
Pour in warmed milk slowly, about 1/2 cup at a time, whisking the entire time. Keep stirring over medium heat until the sauce thickens enough to coat the back of a spoon, about 5-7 minutes.
-
Remove pot from heat. Stir in sharp cheddar and mild cheddar a handful at a time, letting each melt before adding the next. Stir in Dijon mustard, garlic powder, onion powder, salt, pepper, and paprika. Taste and adjust salt.
-
Add cooked pasta back into the sauce and stir until every noodle is coated. Serve immediately for stovetop version.
-
For baked version: Transfer to a greased 9x13 dish, top with buttered breadcrumbs, and bake at 375°F for 20-25 minutes until golden and bubbling. Let sit 5 minutes before serving.