Tomando el modelo de disco de Poincaré para el espacio hiperbólico como formado por todos los números complejos con módulo menor que 1, la distancia entre dos puntos se puede calcular como
$$d(z_1,z_2)=\tanh^{-1}\left|\frac{z_1-z_2}{1-z_1\bar{z_2}}\right| \; .$$
El conjunto de puntos a igual distancia $\varepsilon=\tanh(d(z,z_0))$ desde un punto fijo $z_0$ puede demostrarse que está representado por un círculo en el modelo de disco de Poincaré con centro
$$\frac{(1-\varepsilon^2)z_0}{1-\varepsilon^2|z_0|^2}$$
y el radio
$$\frac{\varepsilon(1-|z_0|^2)}{1-\varepsilon^2|z_0|^2} \; .$$
Pero este no es el final de la historia, no puedes elegir puntos de manera uniforme en este círculo. Lo que quieres es elegir puntos de tal manera que puedas llegar desde $z_0$ a ellos de manera que la dirección de salida de $z_0$ se eligió de manera uniforme. Esto inducirá una distribución particular en ese círculo.
Para averiguar esta distribución, es necesario calcular la intersección de una línea h* a través de $z_0$ para una dirección arbitraria y el círculo que acabamos de calcular. A partir de eso, podemos obtener la distribución buscada. Actualizaré esto más tarde si llego a calcular esa parte.
EDITAR: Siguiendo la sugerencia de @Douglas Zare, esto también se puede conseguir eligiendo un punto a distancia $\varepsilon$ desde el origen uniformemente, donde la deformación del modelo de disco de Poincaré no será un problema ya que las líneas h que pasan por el origen son todas diámetros. Todo lo que tenemos que hacer entonces es trasladar el punto con la traslación que lleva el origen al punto $z_0$ que puede hacerse con una transformación de Möbius
$$z \mapsto w=\frac{z+z_0}{\bar{z}_0z+1} \; .$$
Esto también es fácil de implementar computacionalmente. Aquí está cómo lo codifiqué en R:
# Brownian motion on Poincaré disk (no comments about crappy code plz kthx)
epsilon=0.01;
z<-0;
path<-c(z);
for (t in 1:10000) {
jitter=runif(1,0,1);
dz=epsilon*complex(1,cos(2*pi*jitter),sin(2*pi*jitter));
z<-(z+dz)/(Conj(dz)*z+1);
path<-c(path,z);
}
plot(Re(path),Im(path),type="l",col="blue",asp=1,xlim=c(-1,1),ylim=c(-1,1));
curve(sqrt(1-x^2),-1,1,col="red",add=TRUE);
curve(-sqrt(1-x^2),-1,1,col="red",add=TRUE);
Y aquí hay una imagen de una ejecución del código
*Por línea h, me refiero a una línea en el plano hiperbólico, que será o bien un diámetro, o bien un segmento de círculo ortogonal en la frontera del disco de Poincaré.