Step 1. Marinate the chicken: In a large bowl, combine buttermilk, salt, and pepper. Add the chicken pieces, cover, and refrigerate for at least 4 hours, or overnight for best results.
Step 2. Prepare the chicken coating: In a separate bowl, mix flour, garlic powder, paprika, salt, and pepper.
Step 3. Coat the chicken: Remove chicken from buttermilk, letting excess drip off. Dredge each piece in the flour mixture until well coated.
Step 4. Fry the chicken: Heat vegetable oil in a deep skillet or fryer to 350°F (175°C). Fry chicken pieces, turning occasionally, until golden brown and cooked through, about 15 to 20 minutes. Remove and drain on paper towels.
Step 5. Cook the macaroni: In a large pot of boiling salted water, cook elbow macaroni according to package instructions until al dente. Drain.
Step 6. Make cheese sauce: In the same pot, melt butter over medium heat. Stir in enough flour to create a roux. Gradually add milk, stirring continuously until thickened. Reduce heat, add cheddar and cream cheese, and stir until melted and smooth.
Step 7. Combine macaroni and cheese sauce: Mix the drained macaroni with the cheese sauce until well coated.
Step 8. Serve: Place a portion of fried chicken on each plate alongside a generous serving of macaroni and cheese.