Why do you want to go for an open-loop approach when you have position and velocity feedback at your disposal? In fact, only closed-loop controllers can provide desirable properties such as convergence, robustness, resilience to uncertainties in the model.
There is no static relation between voltage and angle position, simply because at steady-state a constant voltage yields a constant motor speed. Therefore, it's only how you vary the voltage over time that has influence in terms of final angle position (the integral of the speed), as Ian has tried to explain.
Under some wide conditions the relation between the voltage and the position can be described by a transfer function with two real poles: one in the origin and one negative pole accounting for the mechanical response of the motor (we can neglect the fastest electrical pole). The transfer function is simple and can be suitably identified by injecting special voltage waveforms (e.g. step-wise, train of pulses, chirps) and measuring back the position profiles.
Once the model is found, you have then to come up with a methodology to shape the input voltage $V$ in order to reach for the target position $\theta_d$.
In closed-loop it is very easy to select $V=PID(\theta_d-\theta)$, where $\theta$ is the position read from the encoder and $PID(\cdot)$ stands for the Proportional-Integral-Derivative control function, which ensures converge towards $\theta_d$ for a given set of control gains, so as robustness of the control action against variation of model parameters. In its simplest form, $PID(\cdot)$ can be just a multiplication by a coefficient $K$. In short, you are pretty sure that you reach the target.
By contrast, in open-loop you need to design a sort of input shaping of the voltage with resort to e.g. trapezoidal waveforms or other graphical methods (see Ian's answer), given the target to attain. Importantly, you have no guarantee that you will get on the target at the end, because of the uncertainties in the model that open-loop cannot compensate for.