1 volt at 1 milliamp would be 1 kilohm. 100 nanoamps at 1 kilohm would be 100 microvolts. 1 volt with a resolution of 100 microamps is 1 part in 10,000.
With some care, that is all feasible on the analog side. The largest error will be from self heating of the 1 kilohm shunt resistance.
If only a digital measurement is required, then I would consider placing a delta-sigma converter at the high side to make the measurement across the 1 kilohm shunt resistance directly, and use optocouplers on the digital side for the level shift. A floating low voltage supply might be needed.
If the problem is dynamic range because high resolution is required at 1 milliamp and at 100 nanoamps, then analog logarithmic conversion could do that but it will require some analog expertise. This idea here is that error becomes a percentage of the reading rather than the range, so for example 1% error at 1 milliamp and also 1% error at 100 nanoamps, instead of fine resolution at 1 milliamp and coarse resolution at 100 nanoamps.