If I understand your problem right, an easy solution would be coercing the vector into factor with haven::as_factor(), which sets the value labels as factor levels. Then, the table output automatically uses the labels.
Another option might be the frq()-function from the sjmisc-package. sjmisc primary goal is to complement dplyr by doing transformation tasks on variables (instead data frames, like dplyr), like recoding, dichotomizing or grouping variables and so on. All functions in sjmisc support labelled data.
Furthermore, the sjlabelled-package is useful in general when you work with labelled data. It does not directly provide outputs like frequency tables, but offers the underlying helper-function to deal with labelled data. It's very flexible, and the latest update also allows using quasiquotation (see vignette Using quasiquotation to add variable and value labels) to set / get value and varible labels.
Finally, the sjPlot-package has some functions that produces HTML-tables or ggplot2-plots, and also works with labelled data. sjt.xtab() creates crosstabs and uses value / variable labels from labelled data, and all table-output integrates well into knitr-(HTML-)documents.
P.S.: sorry, as a new user I can only use max. two links in a posting, so you need to look up the other webpages by yourself...