Cook macaroni according to package directions, reducing the cooking time by about 1-2 minutes. Drain and set aside.
In the meantime, melt butter in a medium saucepan over medium heat.
Sprinkle in flour and whisk to combine. Cook for 1-2 minutes to get rid of the starchy flavor in the flour.
Add salt, black pepper, and cayenne pepper.
Remove pan from heat. Gradually add milk, whisking constantly, until milk is incorporated and smooth.
Return pan to heat and bring to simmer. Stirring constantly, continue to simmer until mixture has begun to thicken.
Reduce heat to low. Stir in cheese. Continue to stir until cheese is melted.
Add in cooked macaroni. Gently stir until macaroni is coated with the cheese mixture.
Garnish with paprika and chopped fresh parsley, if desired.