Current sensing over a wide range
Your ADC input voltage range is (Vref) 5V or 2.56 V if you select the internal voltage reference of the MCU.

Then use a shunt resistor to give you the desired resolution for the minimum current in a given range and calculate the end of range as:

$$I_{max} = \frac{V_{ref}}{R_{shunt}} \cdot \frac{1023}{1024} $$ 

for example: to measure 1 mA in 0.01 mA resolution using the internal 

$$V_{ref} = 2.56V \text{(ADC Step = 2.56 / 1024 = 2.5 mV)} $$

I need to get 100 as ADC output for 1 mA; 

$$V_{in} = 2.5mV \cdot 100 = 0.25V $$

$$R = \frac{0.25V}{1mA} = 250 \Omega $$

$$I_{max} = \frac{2.56}{250} \cdot \frac{1023}{1024} = 10.23 mA$$

then with shunt resistor of 250 Ohm, I Cover 1 to 10 mA.

Finally: