In a large pot, bring salted water to a boil. Add elbow macaroni and cook according to package instructions until al dente. Drain and set aside.
In a medium saucepan, melt the butter over medium heat. Once melted, add the flour and whisk together for about 1-2 minutes until bubbly and slightly golden.
Gradually pour in the milk while whisking constantly to avoid lumps. Continue whisking until the mixture thickens, about 5-7 minutes.
Remove the saucepan from the heat and stir in the shredded cheddar cheese until melted and smooth. Season with salt, black pepper, and garlic powder if using.
Add the cooked macaroni to the cheese sauce and stir until the pasta is fully coated.
(Optional) Preheat the oven to 350°F (175°C). Transfer the macaroni and cheese to a greased 9x13 inch baking dish. Sprinkle breadcrumbs evenly on top and dust with paprika.
(Optional) Bake in the preheated oven for 15-20 minutes or until the top is golden and crispy.
If serving as stovetop mac and cheese, simply serve hot.