You will need a very high precision voltage reference to achieve that accuracy, and 12 bits is absolute minimum: an ideal ADC will just achieve that. 14 or even 16 bits might be better, and probably not much different in price as long as the required sample rate is modest (under 100k or so?).
An LM358 has max 3mV input offset, will not pull all the way to GND (it's a "single supply" type, but the amount of current it can sink near ground is near zero), and will only pull up within 1-2V of the supply (so a 5V or greater positive supply is required). A true R2R amp like TLV2371 (if not for its max 6mV offset) might do better near the rails (and could run on 3.3V), but again you still won't get all the way to 0mV. A precision type op-amp is required to do buffering or amplification here, probably with extra power supply range. (which doesn't need to be much; a -0.5V supply would be enough, though at that point, you might as well go with -3.3V from a charge pump and use a normal rather than R2R type opamp).
But almost all ADCs draw very little if any DC current from their inputs; why use an op-amp at all? Do you require analog bandwidth comparable to the sample rate?
Other options include dithering (out-of-band or noisy dithering) and averaging, or more involved methods (if a DAC is handy, subtractive dithering or sigma-delta). These are suitable if the required bandwidth is much lower than the available sample rate.
Tim