Since you're working with a binary image here, BW2, you can use the bwpropfilt function to clean up the small areas.
BW2 = bwpropfilt(BW2, 'Area', 1);
The last input argument determines the largest # of regions to keep, so it can be lowered to just the one. From there regionprops would only detect the single centroid.
You could also pass area as an input to regionprops as it is and use the centroid of the largest area.
measurements = regionprops(BW2, 'Centroid', 'Area');
[~,ind] = max(cat(1,measurements.Area));
centroid = measurements(ind).Centroid;