Hi,
You seem to be saying that you need 0.5 percent accuracy on the reference voltage so i assume you will be using the A to D converter on the chip. The on chip ADC divides the reference voltage by N where N is something like 1024 for a 10 bit ADC, so that means that each bit value is worth 5/1024 volts. So if you had an external voltage on the ADC input that was 50/1024 volts you would see a count of 10 out of the ADC after the conversion was complete, at least in theory. So you want a reference that will maintain that 5/1024 volts per 'count' level to within 0.5 percent. And apparently you have a load that can change by 50ma while at the same time loading with a constant load of 500ma. So your load switches from 500ma to 550ma and you want to make sure the 'reference' voltage is stable.
Well the best approach is probably to just use a regular voltage regulator like the LM317 or better and filter the output with some capacitance, while at the same time making sure that in the code you never take a reading while the load is changing. Since the uC usually initiates any load changes this is usually possible. So wait until the reference voltage has a chance to settle before taking an ADC reading. That's the best way to do it anyway.
You can experiment a little to see if it makes much difference to sample after one instruction period, two instruction periods, etc. If you dont find any difference in readings then you're probably doing ok with it.
The LM317 isnt too bad on regulation. It's pretty good over temperature too, but if you need better then just add a reference diode to the circuit and that should get you to even better spec's. This way you dont have to go through any elaborate circuit design.
You can also look into oversampling or just averaging to get a more repeatable reading each time.