[SOLVED} MOSFET continuously conducts

You don't need to do active feedback corrections in code like that, that's what the op amp is for. It already has a feedback connection from the resistor that it uses to keep the current stable at the right value. The most you should have to do is infrequent calibration to factor out any circuit bias, tolerance errors and the temp co of the resistor if you need. Once that's done, you just put the calibration-adjusted setpoint into the control input and let the amp's feedback loop take care of the rest.

I guarantee that pretty much any op amp you pick is going to have a much better control bandwidth than a 10 ksps ADC. Diddling around trying to make another feedback loop around the one that already exists, and using inadequate parts, is going to have worse performance no matter how good your coding is.

I think you're being fooled by the scope. Analog scopes are really bad at showing uncorrelated noise, which is what your loops oscillations would be when reading the resistor voltage. Slowing the control loop down would probably help it. The circuit has a severe bandwidth limitation with the LPF on the input. If you're using the same values as the OP, it's roll off was 3 or 5 Hz, I think I calculated. The control loop will easily run at least 1,000x faster than that. Couple that with the fact that your set point calculation is basically all I and no P-D, you're going to have a huge problem with integral windup when you run it too fast.

The only purpose of the connection to the ADC is to detect when the regulator is running out of regulation, either because of a circuit fault or if the load is too weak to provide enough current. And in those cases, the controller won't be able to do anything to correct the situation, the most it can do it display a fault indicator and/or shut the circuit off to prevent unsafe operation.