How do I amplify a 0-100mV signal to an ADC with a range from 0 to a specific reference voltage?
When you really need to get to ground on the output so that even a "rail to rail" output isn't good enough, give it negative power.  A opamp to drive a A/D input doesn't need much current, so a charge pump should be sufficient.

All you need is a consistently toggling digital output.  This can drive a NPN/PNP emitter follower pair.  That plus two Schottky diodes and two caps gets you a small negative voltage.  Microcontrollers can often drive a pin with a "clock output" or the like, which is useful for making a charge pump from.  After the various voltage drops, you only end up with -1.2 V or so when starting with a 3.3 Vpp square wave, but that's plenty to get a many opamps well past their lower rail limit region.

One possible gotcha from this is that the opamp can now drive below the valid A/D input voltage.  With the right circuit and making sure the input voltage to the opamp stays within a specified range, you should be able to know the output won't go negative.  However, you should consider this carefully.