Preheat your oven to 350°F (175°C).
Cook the elbow macaroni in a large pot of salted boiling water until al dente, about 7 minutes. Drain and set aside.
In a medium saucepan, melt the butter over medium heat. Whisk in the flour until smooth, about 1 minute.
Gradually add the milk, whisking continuously until the mixture thickens and starts to bubble, about 5 minutes.
Lower the heat and stir in the cheddar, Gruyere, and cream cheese until melted and smooth.
Stir in the BBQ sauce, smoked paprika, garlic powder, and onion powder. Season with salt and pepper to taste.
Combine the cooked macaroni with the cheese sauce, mixing well to ensure each noodle is coated.
Transfer the macaroni and cheese to a greased baking dish. Sprinkle breadcrumbs evenly over the top.
Cover with aluminum foil and bake for 20 minutes. Remove the foil and bake for an additional 10 minutes or until the top is golden and bubbly.
Let stand for 5 minutes before serving.