generating a -10v...+10v control signal from an arduino

I agree with dc42 that his ckt should work, and all the way from 0V to 10V output, as the LM358
opAmp has input common-mode range down to ground.

The one thing that may be an issue is that 1st-order filtering of the PWM signal will leave a little
ripple on the DC-level, so the valve may jitter some. You can deal with that by using a PWM
frequency much much greater than the R*C time constant of his filter, but this will also reduce
the frequency response of the valve, if that's an issue.