[Edited to correct the bin definition.]

You could use `SectorChart`. The trick is to ensure that your bin widths sum to 360° and that the first bin charted starts at zero.

Firstly, and borrowing shamelessly from @george2079's answer [and subsequent correction], define the bins:

 bins = Table[a , {a, -180, 180, 30}];

Next create the sector chart data:

 sData = RotateLeft[
 Tooltip[Join[Differences[#1], {#2}], {Mean[#1], #2}] & @@@ 
 Transpose[{Partition[bins, 2, 1], BinCounts[angles, {bins}]}], 
 FirstPosition[bins, 0] - 1]
> {{30, 1}, {30, 8}, {30, 0}, {30, 0}, {30, 2}, {30, 1}, {30, 0}, {30, 1}, {30, 0}, {30, 0}, {30, 1}, {30, 0}}

There are several things going on here:

 - We add a tooltip so that the each sector is labelled with the mid-point of the bin and the count,
 - we calculate the width of each bin and
 - we rotate the data such that the bin starting at zero is first in the list. Obviously this requires a bin edge at zero.

Finally chart it, adding axes, etc. and rotating the origin (thanks again @george2079):

 SectorChart[sData, PolarGridLines -> Automatic, 
 PolarTicks -> {Automatic, None}, PolarAxes -> {True, False}, 
 SectorOrigin -> 0]

![Sector chart][1]


 [1]: https://i.sstatic.net/Vy05D.png