Bring a large pot of salted water to a boil and cook the cavatappi shells until tender but still firm to the bite according to package instructions. Drain the pasta and set aside.
In a separate medium saucepan, melt the butter over medium heat. Stir in the flour, salt, and black pepper, whisking constantly to form a smooth, bubbly roux without lumps.
Gradually pour in the milk and heavy cream, whisking all the while, and heat the mixture gently until it begins to simmer and thickens slightly.
Lower the heat to the smallest setting and stir in the shredded cheddar and mozzarella cheeses until they are fully melted and the sauce is silky smooth.
Add the cooked cavatappi pasta to the cheese sauce and stir well to coat every piece. If the sauce appears too thick, mix in an additional 1 or 2 tablespoons of milk until you reach the desired consistency.
Allow the mac and cheese to rest for about 5 minutes so the sauce can thicken and flavors meld together before serving.