Using the text strings as specified would violate the ordinal nature of the attribute. You could recode the strings as, e.g., "1=low," "2=low-medium," and so on. In this way your software would rank the categories as a function of the first byte of the text string to maintain the ordinal relationship.
Why isn't a numeric recoding of the attribute a "good choice?" One can assume that these categories correspond to ranges for the underlying, raw variable. Given that, and I'm making these numbers up, if low='10 or less" and low-medium='11-20' and so on, creating a numeric field based on the midpoints of each range is definitely a viable option. In this way, "low" would be recoded as 10, "low-medium" would become 15, and so on. This would create a numeric field that could be averaged, leveraged as a predictor in multiple regressions, resulting in more readily interpretable conditional relationships, etc. Not to mention that this numeric field would be more conservative in terms of using up model degrees of freedom than its categorical version. This latter point may or may not matter as a function of the volume of data you're analysing.