If you want to store positions only manually I have a library that can do that. It doesn't use a ring though, it uses a stack. You can download it from Codeberg. Put it in a path in your load-path
(Type C-h v load-path RET
to see its value) and in your init.el
tell Emacs to load it
(require 'marker-stack)
Then tell the library not to save positions automatically
(setq marker-stack-functions-every-call nil)
(setq marker-stack-functions-first-call nil)
and bind the commands for saving a position and for navigating the history to some keys, for example
(global-set-key [f5] 'marker-stack-push)
(global-set-key (kbd "C-M-,") 'marker-stack-backward-stack-pop)
(global-set-key (kbd "C-M-.") 'marker-stack-forward-stack-pop)
That should do. One day I'll upload it to MELPA.