I know of two ways to do this. The first way uses ComputerCraft and OpenCCSensors: http://www.computercraft.info/…x.php?title=OpenCCSensors
You can use the Gauge Peripheral to get readings from energy storage units, and then create a program to do pretty much whatever you want at any given power level.
The second, easier way is to use a redstone comparator which will output a signal proportional to the energy in the unit (between 0 and 15). However there is a bug with this method. The comparator only updates it's value when the block updates. So the way to get this to work is to constantly update the block next to the comparator. This can be done with a redstone clock. I recommend the redstone clock from the excellent "Extra Utilities" mod: http://www.minecraftforum.net/…e-extra-utilities-v1-1-0b
Place the clock on either side of the comparator and it will keep it updated. Note that this will not get you exactly to 50%, since the signal from the comparator is 7 at 46% and 8 at 53%.
Here is an image of the arrangement, which I use to keep the geothermal and semifluid generators from constantly cycling. Instead the MFSU bounces back and forth between 75% and 100% power (accomplished with an RS NOR latch).