Let's say you have a sphere of radius $r$ centered at origin, and point $\vec{p} = (p_x, p_y, p_z)$ somewhere on the sphere so $\lVert \vec{p} \rVert = \sqrt{ \vec{p} \cdot \vec{p} } = \sqrt{p_x^2 + p_y^2 + p_z^2} = r$.
Let's say that at time $t = 0$ the point starts traveling on the sphere in direction $\vec{v}$ with velocity $\lVert\vec{v}\rVert$. Because $\vec{v}$ is tangential to the sphere, $\vec{v} \perp \vec{p}$. If you pick a random direction $\vec{w}$ in 3D, you can take just its tangential component,
$$\vec{v} = \vec{w} - \frac{\vec{p} \cdot \vec{w}}{\vec{p} \cdot \vec{p}} \vec{p}$$
essentially performing a single step of the Gram-Schmidt process, making $\vec{v}$ the part of $\vec{w}$ that is orthogonal to $\vec{p}$ and thus planar in the sphere tangent plane at $\vec{p}$.
If the point travels in a local straight line, it will travel along a great circle (a circle with its center at the center of the sphere, starting point on the perimeter, and the initial direction in the plane of the circle). The simplest way to express this is by rotation around axis $\hat{a}$ perpendicular to the great circle,
$$\hat{a} = \frac{\vec{v} \times \vec{p}}{\left\lVert \vec{v} \times \vec{p} \right\rVert} \tag{1}\label{G1}$$
If $v = \lVert\vec{v}\rVert$ is the (2D) velocity, the angular velocity $\omega$ is
$$\omega = \frac{v}{2 \pi r} = \frac{v}{2 \pi \lVert \vec{p} \rVert} \tag{2}\label{G2}$$
and we can describe the trajectory of $\vec{p}$ as a function of time $t$ via
$$\vec{p}(t) = \mathbf{R}(\hat{a}, \omega t) \vec{p}_0 \tag{3a}\label{G3a}$$
where $\vec{p}_0 = \vec{p}(0)$ is the location at time $t = 0$, and
$$\begin{aligned}
\mathbf{R}(\hat{a}, \omega t) & = \left[ \begin{matrix}
c + a_x^2 u & a_x a_y u - a_z s & a_x a_z u + a_y s \\
a_y a_x u + a_z s & c + a_y^2 u & a_y a_z u - a_x s \\
a_z a_x u - a_y s & a_z a_y u + a_x s & c + a_z^2 u \\
\end{matrix} \right] \\
c & = \cos(\omega t) \\
s & = \sin(\omega t) \\
u & = 1 - \cos(\omega t) = 1 - c \\
\end{aligned} \tag{3b}\label{G3b}$$
Alternatively (and equivalently), you can use Rodrigues' rotation formula,
$$\begin{aligned}
\vec{p}(t) &= \vec{p}_0 c + \left(\hat{a} \times \vec{p}_0\right) s + \hat{a} \left( \hat{a} \cdot \vec{p}_0 \right) (1 - c) \\
c &= \cos(\omega t) \\
s &= \sin(\omega t) \\
\end{aligned}
\tag{3c}\label{G3c}$$
In both cases, we just rotate $\vec{p}_0$ around unit axis vector $\hat{a}$ by angle $\omega t$.
To find out the instant direction, the same applies to $\vec{v}$: just replace $\vec{p}_0$ by $\vec{v}_0$ in the formula you wish to use, and you get the exact local direction vector $\vec{v}(t)$ as a function of time $t$.
(By notation $\vec{p}(t)$, I am referring to a vector-valued function in a single variable $t$. While the latter looks simpler, if you need both $\vec{p}(t)$ and $\vec{v}(t)$, the matrix form may require fewer basic arithmetic operations.)
Let's say you know the starting point $\vec{p}_0$, and the destination point $\vec{p}_1$, both on the sphere ($\lVert \vec{p}_0 \rVert = \lVert \vec{p}_1 \rVert = r$).
This time, the unit axis vector $\hat{a}$ is
$$\hat{a} = \frac{\vec{p}_0 \times \vec{p}_1}{\lVert \vec{p}_0 \times \vec{p}_1\rVert} \tag{4}\label{G4}$$
The total travel distance $L$ (measured along the surface of the sphere) is
$$L = 2 \pi r \arccos\left(\theta_\Delta\right) \tag{4a}\label{G4a}$$
where $\theta_\Delta$ is the angular separation,
$$\theta_\Delta = \frac{\vec{p}_0 \cdot \vec{p}_1}{\lVert\vec{p}_0\rVert \, \lVert\vec{p}_1\rVert} \tag{4b}\label{G4b}$$
and therefore the arrival time $t$ with (sphere surface) velocity $v$ is
$$t = \frac{L}{v} \tag{4c}\label{G4c}$$
and the angular velocity $\omega$ is
$$\omega = \frac{\theta_\Delta}{t} \tag{4d}\label{G4d}$$
Alternatively, if you know the arrival time $t$, then the (sphere surface) velocity $v$ is
$$v = \frac{L}{t} \tag{4e}\label{G4e}$$
Treating the current position as an $r$-length Cartesian vector yields a simple simulation. However, it also means that one can easily adjust the altitude of the point also. For example, to move $\vec{p}$ to altitude $h$ just scales it to length $r + h$,
$$\vec{p}^\prime = \frac{r + h}{\lVert \vec{p} \rVert} \vec{p} \tag{5}\label{G5}$$
and to change the altitude of $\vec{p}$ by $h$ is just
$$\vec{p}^\prime = \frac{\lVert \vec{p} \rVert + h}{\lVert \vec{p} \rVert} \vec{p} \tag{6}\label{G6}$$
where the$\,^\prime$ is there just to denote that it is the point after the altitude adjustment.
Furthermore, you can use 3D squared distance between two points to determine collisions et cetera. The velocity $v$ is similarly measured along the sphere surface, as opposed to along the elliptical/non-spherical curve if altitude changes would be taken into account; just as we do with air travel on Earth.
Finally, if $z$ axis is towards the north pole and $x$ axis towards zero meridian on the equator, then
$$\begin{aligned}
\text{latitude} &= \displaystyle \arcsin\left(\frac{p_z}{\lVert\vec{p}\rVert}\right) \\
\text{longitude} &= \displaystyle \operatorname{atan2}\left(\frac{p_y}{\lVert\vec{p}\rVert}, ~ \frac{p_x}{\lVert\vec{p}\rVert}\right) \\
\end{aligned} \tag{7}\label{G7}$$
where $\operatorname{atan2}(y, x)$ is the two-argument version of arcus tangent provided by most programming languages; similar to $\arctan(y/x)$, but takes the signs of $y$ and $x$ into account, so that the result covers all four quadrants (full 360°).
Conversion between a 3D direction vector $\vec{v}$ and a single direction angle $\varphi$ – compass reading, with 0° towards North, 180° towards South, and 90° West – is possible, if we handle directions at north pole (where every direction is south) and at south pole (where every direction is north) specially: there, the direction angle is towards that longitude on the equator.
If $\hat{N}$ is a 3D unit vector towards local North, and $\hat{W}$ is a 3D unit vector towards local West, then heading $\varphi$ corresponds to 3D unit direction $\hat{d}$,
$$\hat{d} = \hat{N}\cos\varphi + \hat{W}\sin\varphi \tag{8}\label{G8}$$
If you are at 3D point $\vec{p} = (p_x, p_y, p_z)$ and not at a pole ($p_x^2 + p_y^2 \ne 0$), then
$$\hat{N} = \frac{1}{\sqrt{(p_x^2 + p_y^2)(p_x^2 + p_y^2 + p_z^2)}} \left[ \begin{matrix}
- p_x p_z \\
- p_y p_z \\
p_x^2 + p_y^2 \\
\end{matrix} \right], \quad \hat{W} = \frac{1}{\sqrt{p_x^2 + p_y^2 + p_z^2}} \left[ \begin{matrix}
p_y \\
-p_x \\
p_z \\
\end{matrix} \right] \tag{9a}\label{G9a}$$
but at the poles ($p_x = p_y = 0$),
$$\hat{N} = \left[ \begin{matrix} 1 \\ 0 \\ 0 \end{matrix} \right], \quad \hat{W} = \left[ \begin{matrix} 0 \\ 1 \\ 0 \end{matrix} \right] \tag{9b}\label{G9b}$$
If you have direction vector $\vec{d}$ at point $\vec{p}$, calculate the north and west unit vectors $\hat{N}$ and $\hat{W}$, then ensure the direction vector is tangential to the sphere,
$$\vec{d}^\prime = \vec{d} - \displaystyle\frac{\vec{p} \cdot \vec{d}}{\vec{p} \cdot \vec{p}} \vec{p}$$
and the heading angle $\varphi$ is then
$$\varphi = \operatorname{atan2}\left( \hat{W} \cdot \vec{d}^\prime , ~ \hat{N} \cdot \vec{d}^\prime \right) \tag{G9c}\label{G9c}$$