You really have insufficient information to know the shape of that function between the upper and lower asymptotes.
So the fit will be completely useless crap, in terms of any estimates for the parameters. Worse, you already know the upper and lower asymptotes. So that data is indeed completely useless. Good luck. :)
Can you use say, the curve fitting toolbox? Of course, as that is usually my recommentation as the best choice.
You would do something like this:
mdl = fittype('atan(-omega./(tau*(omega0.^2 - omega^2)))','indep','omega')
estmdl = fit(sorted_omega,sorted_phi,mdl,'start',[6,1],'lower',[5,0.1],'upper',[8,10])
But then you will see that in fact, this model has not a chance in hell of EVER fitting that data.
In fact, it has a singularity at omega0. So whoever gave you that model is totally dreaming.
So, is there a model that has at least the desired shape, that uses atan? Well, yes. Even so, the fit will be, as I said before, complete and total crapola.
But suppose you plot the atan function.
So the atan function has asymptotes at -pi/2 and pi/2. What you want to see looks like...
fplot(@(theta) -atan(theta) - pi/2)
This has the fundamental shape you seem to want. INtroducing a shift and scale, we will get this:
mdl = fittype('-atan(tau*(omega - omega0)) - pi/2','indep','omega')
estmdl = fit(sorted_omega,sorted_phi,mdl,'start',[1,6])
Note that the confidence limits on the parameters are REALLY wide. And that means that, while the model sort of fits your data, it is just a pipe dream. Of course, it is a wildly better pipe dream than what you were given to use.
As I said, the model you wanted to use is utter drivel in this context.