This answer does incorporate the comment given by Max Snippe to "correct" the plot. But then you have two remaining problems.
- The connecting lines between the negative and positive part of the plot and
- the otherwise "ugly" looking plot because of the number of samples.
A solution for point 1 is given by percusse and point 2 could be fixed by stating a high number of samples (200 or above), maybe in combination with smooth.
But here I decided to use a non-linear spacing approach and utilizing the symmetry of the function to plot the function in two parts which also avoids the above two mentioned problems.
For details on how this solution works, please have a look at the comments in the code.
% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[
/pgf/declare function={
c = 1;
f(\x) = atan(c^2/(\x*sqrt(c^2/2 + \x^2)))/180*pi;
% state lower and upper boundaries
lb = 0.001;
ub = 15;
% -----------------------------------------------------------------
%%% nonlinear spacing: <https://tex.stackexchange.com/a/373820/95441>
% "non-linearity factor"
a = 0.5;
% function to use for the nonlinear spacing
Y(\x) = exp(a*\x);
% rescale to former limits
X(\x) = (Y(\x) - Y(lb))/(Y(ub) - Y(lb)) * (ub - lb) + lb;
% -----------------------------------------------------------------
},
]
\begin{axis}[
x=0.3cm,
y=1.0cm,
axis lines=middle,
ymajorgrids=true,
xmajorgrids=true,
% use limits already stated above
xmin=-ub,
xmax=ub,
ymin=-2.5,
ymax=2.5,
% the default number of samples is sufficient
samples=25,
% make the plot smooth
smooth,
% no markers, % <-- uncomment this line to not show markers
]
%\clip(-16.03,-8.94) rectangle (16.03,8.94);
% (not sure what is this good for ...)
\draw [line width=4.pt] (-15.43,7.94) -- (-11.43,7.94);
% draw the positive part of the function
% and "forget" it to not increase the `cycle list index'
\addplot+ [domain=lb:ub,forget plot]
({X(x)}, {f(X(x))});
% draw the negative part of the function
% utilizing the point symmetry of the function
\addplot+ [domain=lb:ub]
({-X(x)}, {-f(X(x))});
\end{axis}
\end{tikzpicture}
\end{document}

atan()returns a number in degrees. Stefan Pinnow's answer is better in a lot of ways. – Max Jul 29 '18 at 20:15