The function textis IMHO the friendliest of the annotation objects, because it takes the coordinates of the graph, not the normalized coordinates of the shape.
K = numel(centers);
for k = 1:K
text(centers(k),pcts(k),[num2str(pcts(k)) '%'],'HorizontalAlignment','center','VerticalAlignment','bottom')
end
. text , , , .. .