I want to use a DAC to control the current to a Peltier device. The Peltier will typically be running at about 0.25A, and this requires less than 100mV. I have tried this circuit, but it oscillates at about 100KHz. The Op amp is fed from a separate 3.3V power supply. The darlington has an Hfe of 2000. How can I stabilize it?
You have too much gain within the feedback loop and it's pushing the phase margin to the point where it becomes an oscillator.
Get rid of IC1 and rewire as per the purple change below: -
IC1 is bringing nothing to the party other than woe. There is enough open-loop gain within a normal op-amp (IC2) for this to work very effectively. Adding more loop gain is asking for trouble (especially if you were using a MOSFET instead of the darlington transistors).
If you have to adjust the DAC output use a resistor potential divider to produce the "new" demand voltage.
Take care to choose an op-amp that doesn't introduce problematic errors due to input offset voltage. Also take great care in ensuring that the 0 volts net is not carrying load currents between the op-amp and the DAC. Load currents and poor 0 volt net impedances can also cause oscillation and will significantly make precision control much worse.
I have ran into this problem before, though it had to do with cooling fans, not a Peltier module. The problem is that you have created a constant current sink, not a constant voltage supply. It is not oscillation so much as it is gasping for current to run the module.
My fix was to put a large 4,700 uF capacitor across the load, which soaks up the rise and fall in voltage to make it more stable. Because these dynamic loads want more and more current as they start-up and run, they starve for current because the design tries to fix the current.
Another fix is to move the Peltier module to where the 100 ohm resistors is. At this point you do have constant voltage, as the op-amp will always try to keep the (-) and (+) inputs at the exact same voltage. You should think of this as a programmable voltage supply, not a current supply. If you like you can keep the 100 milliohm resistor up at the collectors to insure no over current is possible, until your sure your design is stable at all voltage settings.
Be sure the Peltier module has adequate heat-sink and fan cooling. You can add fuses if you like but I have found Peltier modules to be very predictable in terms of current consumed per given voltage.
EDIT: In looking at your schematic up close you need to make sure the emitter of the Darlington pair is fed back to an inverting input (-), else you have built an oscillator.