Is it possible to get middle grounds with solenoids?
No. The solenoid will be all or nothing. If you have used a magnet, you have seen that the force decreases rapidly with distance. As you move something closer, it will typically snap to a magnet at one point. The same thing happens in a solenoid valve: once you apply enough voltage to start motion, the motion will complete.
Side note: that is actually a common trick to saving much power with solenoid valve. You might apply 12 V to actuate, but then you can reduce the voltage very low (maybe 2 V or lower) and the valve will still say actuated.
So if you want flow, you need a flow control valve. A common 1/4 turn ball valve will provide the fractional flow you seek. You should be able to hook a servo or gear motor to that.
A typical ball valve will not provide a constant change of flow with angle. That means the change in flow between the first 5 degrees opening will be large while the last 5 degrees of motion will have little effect. If the application is not critical, that would be fine.
If you want more precise flow control, valves are made with a particular cutout in the ball that makes the flow control more linear. You can get a commercial type valve with motor attached in cost range of 100 $US. For hooking up to an Arduino, a Belimo flow valve (one example vendor) only seems appropriately named
These are commercial type valves used to control water in heater systems and such. They take a 0 - 10 V input signal as control and will rotate the vale. The keyword search is "motorized flow control valve" and that will find you many. These are not exotic, you will find many in all sorts of sizes. You may even find from a local plumbing supplier where you can pick one up at will call.