David,
I've been pondering a similar sort of question -- how to use a linear actuator with hard limits before reaching the in-built end-of-travel microswitches.
My thought was to use an 08M to measure current across a resistor exactly as you have planned, but with two differences:
1) Use a separate, dedicated 08M to measure current and cut power to the motor when a specified over-current situation is reached. When watching for the overcurrent, run it in a tight loop at 8MHz so that cutting current is virtually instantaneous. In your case, the curtain rope system should easily absorb the very short (small fraction of a second) overload period.
2) Use the 08M first to determine overload current based upon normal continuous current -- first measure and store the normal running current, then set the overload current trigger at some optimal multiple of the steady current. So if you use readADC10 and find that normal current is 830ma for example, then you could set overload to 830 x 1.5 or whatever multiple you want to use to catch the overload situation at the earliest possible millisecond.
The code could look like this:
1. start motor
2. wait 2 seconds
3. measure average current (take multiple measurements over an adequate period of time, maybe 20 measurements or more at 20ms intervals and then average them).
4. Calculate and store the overload current value which is continuous current times a predetermined constant.
5. start dedicated continuous loop monitoring of current, and break loop to cut power to motor as soon as measured current exceeds precalculated value. I would think that you could cut power within 20ms of reaching the end of travel.
BTW This may be a case where using such a small value resistor is not desirable -- calculate the resistor value to give you a useful voltage range for the readADC10, given whatever the voltage delivered to the motor while not detracting from motor performance.
Furthermore, reducing voltage to the motor will also reduce power, again possibly a good thing if your current motor & gear drive deliver far more power to move the curtains than is necessary to actually move them reliably. In my own case, I use a 10ish-ohm resistor to slow the actuator from 3-second full travel to 6-second full travel to meet my needs, and reap the added benefit of greatly reduced current draw.