Ignoring the issue of noise, I want to amplify a "static" 0-100mV DC signal to the range of the ATmega328P's 10-bit ADC using a specific voltage reference. Let's assume this reference is 4.096V and call it AREF. This gives me 4mV steps and I need a gain of 40.96.
From what I understand so far, an in-amp such as the AD623 could work for this. It has an input range from 150mV below Vs- (GND in my case) to to 1.5V below the positive rail (which is 3.5V in my case, with a 5V Vcc.) My problem is that the the output voltage range on a single supply has a minimum of 10mV. That means that the ADC will see 0V, 4mV and 8mV all as "0." How can this be avoided?
I can only amplify by about 1.22 times more before hitting the rails on the output, so I don't see how a voltage divider on the output would help...
As far as I know, there's no way to raise the ATmega328P ADC's bottom voltage without doing something like differential ADC, which I read requires calibration that sounds relatively difficult.