Or a pool under any kind of roof, except maybe glass. You only need the roof over the outer edge of the pool- water will not freeze if there's no solid blocks horizontally adjacent to it, so if you can keep the edges from freezing, the middle won't freeze, either.Then go for a pool over glowstone. Or a pool over glass over lava. The second option has the advantage of looking really really cool.
Alternatively, when I last used steam engines, I used a Liquid Transfer Node with some Mining Upgrades on an infinite water source to supply them. Works like a charm!