This likely calls for an X-Y grid approach in the circuit topology as well as the physical layout, with the photoresistors connected between the rows and columns.
Let's just say for sake of argument that you will drive one of the rows and read one of the columns, though the other way is fine too.
First off, to read a photoresistor, you need to make a voltage divider between it and another resistor, chosen so that you get a nice range of voltage variation between light and dark conditions.
Many micro-controllers have an internal analog multiplexer which lets the ADC read one of several input pins, but likely not enough, so extend the idea by buying analog multiplexors to have one input for each of the columns you need to read. At each input, connect a fixed pullup resistor to VCC, which will form the voltage divider with the selected photo-resistor.
Now we need to drive a low voltage onto one of the rows at a time, while leaving the others floating. This is probably best done with a chip having open-collector (or today, open-drain) outputs, but it could also be done by putting diodes in series with normal outputs. If you had enough micro-controller pins for all the rows, you could in software make all but the drive-low pin an input (provided that it's a truly floating high impedance input, not one with a pulling resistor), but you probably don't and would be using external demultiplexor chips to fan out from a binary code to one driven output and a bunch of undriven ones. (for examaple, a couple of 3-of-8 decoders should do the job).
There are both extremes and variations of this idea; the electrical grid doesn't have to have the same dimensions as the physical one. You can also substitute measuring the time to charge or discharge a capacitor in place of the ADC. (In fact, you can time a capacitor that is itself the image sensor, measuring the leakage of charge from the capacitors that form DRAM cells either in a purpose built device or an old ceramic DRAM chip with the cover pried off - though you have to keep light off the output logic as once the lid is off "ordinary" transistors celebrate by indulging their latent photo-transistor urges)
Your approach sounds fine. Did you really mean to say it should trip off below a current threshold? Normally the point is to trip off if the motor gets stuck due to burnt out bearing or excessive load or whatever. This is to protect the motor from burning up.
Are you trying to protect the system when there is no water to pump, or at least just save power when that happens? Even if that's your goal, you should protect against overcurrent too.
A microcontroller is a simple way to do this. It can easily check each signal fast enough to catch the peaks, and checking against both high and low limits is easy. That also allows you to apply a little wait time before tripping, which can be different for the high and low threshold. For the high threshold, you have to let it draw extra current for a second or two at startup because that's normal for a motor. The low current (no water) is not a immediate failure situation, so you can wait a few seconds to make sure you really have low current continuously.
Best Answer
An indirect way to measure the magnitude of a current pulse would be to power the circuit from a capacitor. During each burst of activity by the processor, the capacitor voltage will drop by a value that's proportional to the charge (current × time) consumed during the burst.
ΔV = ΔQ / C = I × Δt / C
As long as you know what C and Δt are, you can determine the value of I:
I = C × ΔV / Δt
Obviously, the capacitor voltage will also "droop" over time because of internal leakage current and any quiescent current drawn by the load, so be sure to take this into account.