Select circle with given radius that contains most points
Your algorithm is correct.  If the best circle contains one point, your post-processing step will find it.  If the best circle contains two or more points, then there is a way to shift it around so it contains the same set of points and also two of them are on the perimeter; thus, in this case your algorithm will also find it.

There may be other algorithms that are even faster, but your algorithm shows that the problem can be solved in $O(n^2)$ time.