It sounds like you're looking for an appending field, so it's all kept in a single text field, but every time a new value is added, it gets stuck on the end.
For example, if you have a field called Interests, and a lead has the value "Apples; Oranges; Bananas" for that field. Then if you want to identify leads who have the "Bananas" included in that field, you could use the below filter in your smart lists:
Interests "contains" "Bananas".
Suppose you want someone to be able to fill out a form and add values to that list rather than replacing the existing value.
You could do this using a second custom field meant to store the added value temporarily, called Interests Temp for example, which you could put on the form.
Then a smart campaign could say:
Trigger: Data Value Changes, attribute "Interests Temp"
Flow: Change Data Value, attribute "Interests", new value "{{lead.Interests}}; {{lead.Interests Temp}}".
thus causing it to copy the value from the Interests Temp field onto the end of the Interests field, following a semi-colon.