Hola dogflu66, pienso lo mismo que vos, creo que ya le estás pidiendo mucho al sistema, creo que medir corrientes menores a esos 100 mA ya te va a ser muy difícil.
Aunque si hacemos unos cálculos, 3A / 1024 = serían casi 3mA, por lo que todavía deberías de tener buen control debajo de los 100mA.
El que dudo que tenga buena precisión debajo de los 100mA es el ACS712. Deberías de hacer pruebas externas al circuito de aplicación.
A mi modo de ver las cosas, pues primeramente, si deseas controlar tan finamente la potencia de un led, pues tu deberías de tener un control por tensión y no por PWM, como lo tienes.
O sea, tomar ese PWM, filtrarlo, y obtener una continua, tal como lo haría una fuente conmutada, entonces, luego de esto ya tendrías una tensión y corriente de continua que ya de por sí, es mucho más fácil de medir.
Luego, con un shunt y por ejemplo un integrado INA225 (que si mide corrientes muy bajas) hacer el control (mediante tensión) tal como lo vienes implementando. Yo uso el INA226 con salida I2C y mido corrientes desde unos pocos mA hasta más de 20A sin problemas y con mucha exactitud.
El problema del uso de PWM para casos como este, es que por más pequeño que sea el duty cycle, el led en algún momento igual sigue recibiendo la tensión máxima por lo tanto en ese corto momento enciende a su máximo brillo y ya sabemos que el ojo humano es muy sensible.
Este es mi pensamiento, no se si te será de utilidad.
Un saludo.
Atte. CARLOS.