Discuss compensating for factors such as:
Invest in a better mill or inspect the one you have more closely. A good mill should maintain a the same gap in it always. Perhaps using a gap feeler to measure the gap each time would help here.
This comes from two places, first you need a consistent crush. Next, you'll need to pay attention to batch to batch variation of your base malt. This requires getting the malt analysis sheet for each lot of base malt you use. If you are using the same 50lb sack of malt for a couple batches, then the variability is coming from your crush or your mash. To overcome mash variabilities, you need to calculate your recipe for ~5% increase in final gravity than what you want. That way if you want a 1.050OG you mash for a 1.055 and dilute the resultant wort preboil to 1.050OG. Sometimes you'll get 1.057 others 1.052, but you'll always be able to adjust to 1.050 preboil.
%AA differences in hops
Obviously a good calculator for hopping rates is vital. Variability in bitterness again comes from variation in gravities in the kettle too. So strict gravity and volume readings is essential. If your hop bill is all a single varietal of hop then its tough to replicate batch to batch if you don't use the same lot/farm of hops (i.e. bought in bulk) But if you use a blend of hops to achieve each bitterness, flavor and aroma it becomes eaiser for the sublte variation to get smoothed out. So that is more of a recipe thing than technique.
I have never had a lot of trouble with batch to batch variablitity. But I tend to brew only a handful of recipes alot. That is not the norm for homebrewers. Most homebrewers rarely brew the same recipe twice. To really get consistent, you need to pick one recipe and brew it over and over. I think consistancy comes from really knowing how to push your equipment. We all tend to tweak and tweak and tweak. But for consistancy you just need to brew over and over, changing very little. If you do that consistancy will come.