Note that the data mentioned by the OP is the turtle directional data found at various locations and specifically at https://purl.stanford.edu/rw590rq7988.
data = {8, 9, 13, 13, 14, 18, 22, 27, 30, 34, 38, 38, 40, 44, 45, 47, 48, 48, 48, 48, 50, 53, 56, 57, 58, 58, 61, 63, 64, 64, 64, 65, 65, 68, 70, 73, 78, 78, 78, 83, 83, 88, 88, 88, 90, 92, 92, 93, 95, 96, 98, 100, 103, 106, 113, 118, 138, 153, 153, 155, 204, 215, 223, 226, 237, 238, 243, 244, 250, 251, 257, 268, 285, 319, 343, 350};
In many studies there is the assumption (or hope) that there is an underlying smooth probability density function and we can use Mathematica's SmoothKernelDistribution to do so but for directional data there is a modification of the original data that needs to be performed.
Because the density at 0 and 360 is the same value (and the same for -20 and 340, and so on), we can account for that by joining 3 copies of the dataset but shifting by -360, 0, and 360 degrees, respectively, and then fit a nonparametric density estimate. See Silverman equation 2.17 on page 21 of https://ned.ipac.caltech.edu/level5/March02/Silverman/paper.pdf.
I'll also temporarily convert to radians which in this case seems to allow SmoothKernelDistribution to use the "LeastSquaresCrossValidation" option.
(* Augment the dataset *) data2 = Join[data - 360, data, data + 360] 2 π/360; (* Fit the distribution *) skd = SmoothKernelDistribution[data2, "LeastSquaresCrossValidation"]; (* Get a table of the probability density values appropriately scaled: the factor of 3 is used to multiply the pdf from `skd` because we concatenated 3 datasets. The multiplication by `2 π/360` is to convert from radians back to degrees. *) pdf = Table[3 PDF[skd, 2 π θ/360]*2 π/360, {θ, 0, 360}];
Now plot the density on a circular display with jittered data (again, borrowing heavily from @Mr.Wizard 's answer).
(* Jitter both the angle and distance from center of circle *) r = RandomVariate[UniformDistribution[{1.05, 1.15}], Length[data]]; θ = RandomVariate[UniformDistribution[{-0.5, 0.5}], Length[data]]; jitteredData = Transpose[{r Cos[2 π (data + θ)/360], r Sin[2 π (data + θ)/360]}]; s = 50; c = 1; pdfScaled = Table[{(c + s pdf[[i + 1]]) Cos[2 π i/360], (c + s pdf[[i + 1]]) Sin[2 π i/360]}, {i, 0, 360}]; labelfn = Text[HoldForm[# °], .825 {Sin[# °], Cos[# °]}] &; linefn = Rotate[Line[{{.95, 0}, {1, 0}}], Pi/2 - # °, {0, 0}] &; linefn2 = Rotate[Line[{{.91, 0}, {1, 0}}], Pi/2 - # °, {0, 0}] &; Show[ListPlot[pdfScaled, Joined -> True, AspectRatio -> 1, PlotRange -> {{-2, 2}, {-2, 2}}, Axes -> False, ImageSize -> Large], Graphics[{Circle[{0, 0}, 1], labelfn /@ Range[0, 330, 30], linefn /@ Range[0, 355, 5], linefn2 /@ Range[0, 330, 30], PointSize[0.01], Point[jitteredData]}]]

In this case I think plotting the pdf on a linear scale is more informative or at least easier to interpret.
Show[ListPlot[pdf, Joined -> True, Frame -> True, PlotStyle -> PointSize[0.01], PlotRange -> {{0, 360}, {0, Automatic}}, FrameLabel -> (Style[#, Bold, 18] &) /@ {"Angle", "Probability density"}, PlotRangePadding -> {Automatic, {0, Automatic}}], ListPlot[Transpose[{data, 0.001 + 0.0005 (RandomReal[{0, 1}, Length[data]] - 0.5)}]]]

ListPolarPlotallows for inputs as ordered pairs consisting of (angle, value). You could Tally by angle or doBinCounts by angle intervals. The output can be displayed in various ways. You could do the same withSectorChartbut would need to massage the data more than withListPolarPlot. $\endgroup$