Zunächst einmal solltest Du in LaTeX-Dokumenten möglichst nicht \def, sondern \newcommand verwenden. Die Anweisung ist in jeder ausführlichen LaTeX-Einführung erklärt. Ebenso sollte in jeder ausführlichen LaTeX-Einführung das optionales Argumente von \newcounter und der Unterschied zwischen \stepcounter und \refstepcounter für die Label-Erzeugung erklärt sein.
Dann fällt auf, dass Deine Verwendung von \chapter als Überschrift etwas wie »1 §3« erzeugt. Das ist sicher nicht gewünscht. Ich habe deshalb im folgenden Beispiel \chapterformat und \chaptermarkformat umdefiniert, wie das in der
KOMA-Script-Anleitung und im
KOMA-Script-Buch erklärt wird.
Außerdem erscheint es mir unsinnig Befehle wie Absatznr zu definieren, statt einfach nach \newcounter ohnehin existierenden \the…-Befehle passend umzudefinieren bzw. zu verwenden. Auch diese sollten in jeder ausführlichen LaTeX-Einführung erklärt sein. Im
KOMA-Script-Buch finde ich sie ebenfalls.
Was in wenigen LaTeX-Einführungen (aber sehr wohl im
KOMA-Script-Buch) erklärt ist, ist die Anweisung \p@
Zähler, mit der ein Präfix definiert wird, der bei der Erstellung des Labels (und nur dort) der Referenz vorangestellt wird. Das kann man sehr schön verwenden, um die Kapitelnummer mit in das Label zu packen.
\documentclass[ngerman]{scrbook}
\usepackage[utf8]{inputenc}% Overleaf braucht das nicht, ein aktuelles LaTeX dagegen nicht
\usepackage{babel}
\usepackage{graphicx,geometry}
\newcounter{ANr}[chapter]
\newcounter{ANrB}[ANr]
\renewcommand\theANrB{\theANr\alph{ANrB}}
\setlength{\marginparwidth}{7mm}
\newcommand*\thema[1]{\refstepcounter{ANr}{\textbf{#1: }\marginpar{\theANr}}}
\newcommand*\Unterabsatz{\leavevmode\refstepcounter{ANrB}\marginpar{{\theANrB}}}
\makeatletter
\renewcommand*{\p@ANr}{§~\thechapter~Rn.~}
\renewcommand*{\p@ANrB}{§~\thechapter~Rn.~}
\makeatother
\renewcommand*{\chapterformat}{§ \thechapter\enskip}
\renewcommand*{\chaptermarkformat}{§ \thechapter\enskip}
\usepackage{blindtext}
\begin{document}
\setcounter{chapter}{2}
\chapter{}
\setcounter{ANr}{0}
\thema{Bachblütentherapie beim Mofafahren}\blindtext
\Unterabsatz \blindtext \label{bluetenallergie} \blindtext
\thema{Globoli beim Mofafahren} \blindtext
\thema{Feststellung von Globoli im Blut} \blindtext
(siehe \ref{bluetenallergie}).
\end{document}
BTW: Dass \marginpar zwischen Absätzen nicht am Anfang des darauffolgenden Absatzes landet, ist ein bekanntes Problem. Hier hilft es, den Absatz zuerst zu beginnen, was ich im Beispiel mit \leavevmode erreiche. Wobei man bei \marginpar ohnehin nicht sicher ist, wo die Randmarke ausgegeben wird. Diese kann sich ggf. recht weit nach unten verschieben, um Kollisionen mit anderen Randmarken zu vermeiden. Will man die Randmarke in einer bestimmten Zeile erzwingen (und dabei ggf. auch Überlappungen in Kauf nehmen), wäre
marginnote eine Möglichkeit.
Ich würde außerdem mal einen Blick auf
scrjura empfehlen. Das Paket wurde extra für Gesetzestexte und Verträge (und das Kommentieren derselben) entwickelt. Es kommt auch mit dem Einschieben von Paragraphen zurecht und bietet vielfältige Querverweismöglichkeiten. Ob es hier wirklich eine Option ist, weiß ich natürlich nicht.